//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;

namespace CommunityServer.Components
{
	/// <summary>
	/// Summary description for TimeZoneInternationalManager.
	/// </summary>
	public class TimeZoneInternationalManager
	{
		static TimeZoneInternationalManager() 
		{

		}

		private TimeZoneInternationalManager()
		{
		}

		public static TimeZoneInternationalCollection TimeZones 
		{
			get
			{ 
				if( _instance._timeZones == null ) 
				{
					CreateTimeZones();	
				}
				
				return _instance._timeZones;
			}
		}

		public static TimeZoneInternational GetTimeZone( TimeZoneArea timeZoneArea ) 
		{
			if( _instance._timeZones.Count != 75 ) 
			{
				CreateTimeZones();
			}
			
			return _instance._timeZones.GetByKey(timeZoneArea);
		}

		private static void CreateTimeZones() 
		{
				
			TimeZoneInternational[] timezones = {
													/* 0 */ new TimeZoneInternational( TimeZoneArea.DatelineStandardTime, 720, "(GMT-12:00) International Date Line West", "Dateline Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Dateline Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 1 */ new TimeZoneInternational( TimeZoneArea.SamoaStandardTime, 660, "(GMT-11:00) Midway Island, Samoa", "Samoa Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Samoa Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 2 */ new TimeZoneInternational( TimeZoneArea.HawaiianStandardTime, 600, "(GMT-10:00) Hawaii", "Hawaiian Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Hawaiian Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 3 */ new TimeZoneInternational( TimeZoneArea.AlaskanStandardTime, 540, "(GMT-09:00) Alaska", "Alaskan Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Alaskan Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 4 */ new TimeZoneInternational( TimeZoneArea.PacificStandardTime, 480, "(GMT-08:00) Pacific Time (US & Canada); Tijuana", "Pacific Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Pacific Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 10 */ new TimeZoneInternational( TimeZoneArea.MountainStandardTime, 420, "(GMT-07:00) Mountain Time (US & Canada)", "Mountain Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Mountain Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 13 */ new TimeZoneInternational( TimeZoneArea.MexicoStandardTime2, 420, "(GMT-07:00) Chihuahua, La Paz, Mazatlan", "Mexico Standard Time 2", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Mexico Daylight Time 2", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 15 */ new TimeZoneInternational( TimeZoneArea.USMountainStandardTime, 420, "(GMT-07:00) Arizona", "US Mountain Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "US Mountain Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 20 */ new TimeZoneInternational( TimeZoneArea.CentralStandardTime, 360, "(GMT-06:00) Central Time (US & Canada)", "Central Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Central Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 25 */ new TimeZoneInternational( TimeZoneArea.CanadaCentralStandardTime, 360, "(GMT-06:00) Saskatchewan", "Canada Central Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Canada Central Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 30 */ new TimeZoneInternational( TimeZoneArea.MexicoStandardTime, 360, "(GMT-06:00) Guadalajara, Mexico City, Monterrey", "Mexico Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Mexico Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 33 */ new TimeZoneInternational( TimeZoneArea.CentralAmericaStandardTime, 360, "(GMT-06:00) Central America", "Central America Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Central America Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 35 */ new TimeZoneInternational( TimeZoneArea.EasternStandardTime, 300, "(GMT-05:00) Eastern Time (US & Canada)", "Eastern Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Eastern Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 40 */ new TimeZoneInternational( TimeZoneArea.USEasternStandardTime, 300, "(GMT-05:00) Indiana (East)", "US Eastern Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "US Eastern Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 45 */ new TimeZoneInternational( TimeZoneArea.SAPacificStandardTime, 300, "(GMT-05:00) Bogota, Lima, Quito", "SA Pacific Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "SA Pacific Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 50 */ new TimeZoneInternational( TimeZoneArea.AtlanticStandardTime, 240, "(GMT-04:00) Atlantic Time (Canada)", "Atlantic Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Atlantic Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 55 */ new TimeZoneInternational( TimeZoneArea.SAWesternStandardTime, 240, "(GMT-04:00) Caracas, La Paz", "SA Western Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "SA Western Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 56 */ new TimeZoneInternational( TimeZoneArea.PacificSAStandardTime, 240, "(GMT-04:00) Santiago", "Pacific SA Standard Time", new SYSTEMTIME(0,3,6,2,0,0,0,0), 0, "Pacific SA Daylight Time", new SYSTEMTIME(0,10,6,2,0,0,0,0), -60 ),
													/* 60 */ new TimeZoneInternational( TimeZoneArea.NewfoundlandStandardTime, 210, "(GMT-03:30) Newfoundland", "Newfoundland Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Newfoundland Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 65 */ new TimeZoneInternational( TimeZoneArea.EastSouthAmericaStandardTime, 180, "(GMT-03:00) Brasilia", "E. South America Standard Time", new SYSTEMTIME(0,2,0,2,2,0,0,0), 0, "E. South America Daylight Time", new SYSTEMTIME(0,10,0,3,2,0,0,0), -60 ),
													/* 70 */ new TimeZoneInternational( TimeZoneArea.SAEasternStandardTime, 180, "(GMT-03:00) Buenos Aires, Georgetown", "SA Eastern Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "SA Eastern Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 73 */ new TimeZoneInternational( TimeZoneArea.GreenlandStandardTime, 180, "(GMT-03:00) Greenland", "Greenland Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "Greenland Daylight Time", new SYSTEMTIME(0,4,0,1,2,0,0,0), -60 ),
													/* 75 */ new TimeZoneInternational( TimeZoneArea.MidAtlanticStandardTime, 120, "(GMT-02:00) Mid-Atlantic", "Mid-Atlantic Standard Time", new SYSTEMTIME(0,9,0,5,2,0,0,0), 0, "Mid-Atlantic Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 80 */ new TimeZoneInternational( TimeZoneArea.AzoresStandardTime, 60, "(GMT-01:00) Azores", "Azores Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Azores Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 83 */ new TimeZoneInternational( TimeZoneArea.CapeVerdeStandardTime, 60, "(GMT-01:00) Cape Verde Is.", "Cape Verde Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Cape Verde Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 85 */ new TimeZoneInternational( TimeZoneArea.GMTStandardTime, 0, "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London", "GMT Standard Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), 0, "GMT Daylight Time", new SYSTEMTIME(0,3,0,5,1,0,0,0), -60 ),
													/* 90 */ new TimeZoneInternational( TimeZoneArea.GreenwichStandardTime, 0, "(GMT) Casablanca, Monrovia", "Greenwich Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Greenwich Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 95 */ new TimeZoneInternational( TimeZoneArea.CentralEuropeStandardTime, -60, "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague", "Central Europe Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Central Europe Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 100 */ new TimeZoneInternational( TimeZoneArea.CentralEuropeanStandardTime, -60, "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb", "Central European Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Central European Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 105 */ new TimeZoneInternational( TimeZoneArea.RomanceStandardTime, -60, "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris", "Romance Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Romance Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 110 */ new TimeZoneInternational( TimeZoneArea.WestEuropeStandardTime, -60, "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna", "W. Europe Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "W. Europe Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 113 */ new TimeZoneInternational( TimeZoneArea.WestCentralAfricaStandardTime, -60, "(GMT+01:00) West Central Africa", "W. Central Africa Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "W. Central Africa Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 115 */ new TimeZoneInternational( TimeZoneArea.EastEuropeStandardTime, -120, "(GMT+02:00) Bucharest", "E. Europe Standard Time", new SYSTEMTIME(0,10,0,5,1,0,0,0), 0, "E. Europe Daylight Time", new SYSTEMTIME(0,3,0,5,0,0,0,0), -60 ),
													/* 120 */ new TimeZoneInternational( TimeZoneArea.EgyptStandardTime, -120, "(GMT+02:00) Cairo", "Egypt Standard Time", new SYSTEMTIME(0,9,3,5,2,0,0,0), 0, "Egypt Daylight Time", new SYSTEMTIME(0,5,5,1,2,0,0,0), -60 ),
													/* 125 */ new TimeZoneInternational( TimeZoneArea.FLEStandardTime, -120, "(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius", "FLE Standard Time", new SYSTEMTIME(0,10,0,5,4,0,0,0), 0, "FLE Daylight Time", new SYSTEMTIME(0,3,0,5,3,0,0,0), -60 ),
													/* 130 */ new TimeZoneInternational( TimeZoneArea.GTBStandardTime, -120, "(GMT+02:00) Athens, Beirut, Istanbul, Minsk", "GTB Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "GTB Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 135 */ new TimeZoneInternational( TimeZoneArea.JerusalemStandardTime, -120, "(GMT+02:00) Jerusalem", "Jerusalem Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Jerusalem Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 140 */ new TimeZoneInternational( TimeZoneArea.SouthAfricaStandardTime, -120, "(GMT+02:00) Harare, Pretoria", "South Africa Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "South Africa Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 145 */ new TimeZoneInternational( TimeZoneArea.RussianStandardTime, -180, "(GMT+03:00) Moscow, St. Petersburg, Volgograd", "Russian Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Russian Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 150 */ new TimeZoneInternational( TimeZoneArea.ArabStandardTime, -180, "(GMT+03:00) Kuwait, Riyadh", "Arab Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Arab Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 155 */ new TimeZoneInternational( TimeZoneArea.EastAfricaStandardTime, -180, "(GMT+03:00) Nairobi", "E. Africa Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "E. Africa Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 158 */ new TimeZoneInternational( TimeZoneArea.ArabicStandardTime, -180, "(GMT+03:00) Baghdad", "Arabic Standard Time", new SYSTEMTIME(0,10,0,1,4,0,0,0), 0, "Arabic Daylight Time", new SYSTEMTIME(0,4,0,1,3,0,0,0), -60 ),
													/* 160 */ new TimeZoneInternational( TimeZoneArea.IranStandardTime, -210, "(GMT+03:30) Tehran", "Iran Standard Time", new SYSTEMTIME(0,9,2,4,2,0,0,0), 0, "Iran Daylight Time", new SYSTEMTIME(0,3,0,1,2,0,0,0), -60 ),
													/* 165 */ new TimeZoneInternational( TimeZoneArea.ArabianStandardTime, -240, "(GMT+04:00) Abu Dhabi, Muscat", "Arabian Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Arabian Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 170 */ new TimeZoneInternational( TimeZoneArea.CaucasusStandardTime, -240, "(GMT+04:00) Baku, Tbilisi, Yerevan", "Caucasus Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Caucasus Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 175 */ new TimeZoneInternational( TimeZoneArea.AfghanistanStandardTime, -270, "(GMT+04:30) Kabul", "Afghanistan Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Afghanistan Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 180 */ new TimeZoneInternational( TimeZoneArea.EkaterinburgStandardTime, -300, "(GMT+05:00) Ekaterinburg", "Ekaterinburg Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Ekaterinburg Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 185 */ new TimeZoneInternational( TimeZoneArea.WestAsiaStandardTime, -300, "(GMT+05:00) Islamabad, Karachi, Tashkent", "West Asia Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "West Asia Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 190 */ new TimeZoneInternational( TimeZoneArea.IndiaStandardTime, -330, "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi", "India Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "India Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 193 */ new TimeZoneInternational( TimeZoneArea.NepalStandardTime, -345, "(GMT+05:45) Kathmandu", "Nepal Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Nepal Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 195 */ new TimeZoneInternational( TimeZoneArea.CentralAsiaStandardTime, -360, "(GMT+06:00) Astana, Dhaka", "Central Asia Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Central Asia Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 200 */ new TimeZoneInternational( TimeZoneArea.SriLankaStandardTime, -360, "(GMT+06:00) Sri Jayawardenepura", "Sri Lanka Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Sri Lanka Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 201 */ new TimeZoneInternational( TimeZoneArea.NorthCentralAsiaStandardTime, -360, "(GMT+06:00) Almaty, Novosibirsk", "N. Central Asia Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "N. Central Asia Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 203 */ new TimeZoneInternational( TimeZoneArea.MyanmarStandardTime, -390, "(GMT+06:30) Rangoon", "Myanmar Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Myanmar Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 205 */ new TimeZoneInternational( TimeZoneArea.SEAsiaStandardTime, -420, "(GMT+07:00) Bangkok, Hanoi, Jakarta", "SE Asia Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "SE Asia Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 207 */ new TimeZoneInternational( TimeZoneArea.NorthAsiaStandardTime, -420, "(GMT+07:00) Krasnoyarsk", "North Asia Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "North Asia Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 210 */ new TimeZoneInternational( TimeZoneArea.ChinaStandardTime, -480, "(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi", "China Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "China Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 215 */ new TimeZoneInternational( TimeZoneArea.MalayPeninsulaStandardTime, -480, "(GMT+08:00) Kuala Lumpur, Singapore", "Malay Peninsula Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Malay Peninsula Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 220 */ new TimeZoneInternational( TimeZoneArea.TaipeiStandardTime, -480, "(GMT+08:00) Taipei", "Taipei Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Taipei Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 225 */ new TimeZoneInternational( TimeZoneArea.WestAustraliaStandardTime, -480, "(GMT+08:00) Perth", "W. Australia Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "W. Australia Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 227 */ new TimeZoneInternational( TimeZoneArea.NorthAsiaEastStandardTime, -480, "(GMT+08:00) Irkutsk, Ulaan Bataar", "North Asia East Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "North Asia East Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 230 */ new TimeZoneInternational( TimeZoneArea.KoreaStandardTime, -540, "(GMT+09:00) Seoul", "Korea Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Korea Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 235 */ new TimeZoneInternational( TimeZoneArea.TokyoStandardTime, -540, "(GMT+09:00) Osaka, Sapporo, Tokyo", "Tokyo Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Tokyo Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 240 */ new TimeZoneInternational( TimeZoneArea.YakutskStandardTime, -540, "(GMT+09:00) Yakutsk", "Yakutsk Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Yakutsk Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 245 */ new TimeZoneInternational( TimeZoneArea.AUSCentralStandardTime, -570, "(GMT+09:30) Darwin", "AUS Central Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "AUS Central Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 250 */ new TimeZoneInternational( TimeZoneArea.CentralAustraliaStandardTime, -570, "(GMT+09:30) Adelaide", "Cen. Australia Standard Time", new SYSTEMTIME(0,3,0,5,3,0,0,0), 0, "Cen. Australia Daylight Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), -60 ),
													/* 255 */ new TimeZoneInternational( TimeZoneArea.AUSEasternStandardTime, -600, "(GMT+10:00) Canberra, Melbourne, Sydney", "AUS Eastern Standard Time", new SYSTEMTIME(0,3,0,5,3,0,0,0), 0, "AUS Eastern Daylight Time", new SYSTEMTIME(0,10,0,5,2,0,0,0), -60 ),
													/* 260 */ new TimeZoneInternational( TimeZoneArea.EastAustraliaStandardTime, -600, "(GMT+10:00) Brisbane", "E. Australia Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "E. Australia Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 265 */ new TimeZoneInternational( TimeZoneArea.TasmaniaStandardTime, -600, "(GMT+10:00) Hobart", "Tasmania Standard Time", new SYSTEMTIME(0,3,0,5,3,0,0,0), 0, "Tasmania Daylight Time", new SYSTEMTIME(0,10,0,1,2,0,0,0), -60 ),
													/* 270 */ new TimeZoneInternational( TimeZoneArea.VladivostokStandardTime, -600, "(GMT+10:00) Vladivostok", "Vladivostok Standard Time", new SYSTEMTIME(0,10,0,5,3,0,0,0), 0, "Vladivostok Daylight Time", new SYSTEMTIME(0,3,0,5,2,0,0,0), -60 ),
													/* 275 */ new TimeZoneInternational( TimeZoneArea.WestPacificStandardTime, -600, "(GMT+10:00) Guam, Port Moresby", "West Pacific Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "West Pacific Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 280 */ new TimeZoneInternational( TimeZoneArea.CentralPacificStandardTime, -660, "(GMT+11:00) Magadan, Solomon Is., New Caledonia", "Central Pacific Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Central Pacific Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 285 */ new TimeZoneInternational( TimeZoneArea.FijiStandardTime, -720, "(GMT+12:00) Fiji, Kamchatka, Marshall Is.", "Fiji Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Fiji Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
													/* 290 */ new TimeZoneInternational( TimeZoneArea.NewZealandStandardTime, -720, "(GMT+12:00) Auckland, Wellington", "New Zealand Standard Time", new SYSTEMTIME(0,3,0,3,2,0,0,0), 0, "New Zealand Daylight Time", new SYSTEMTIME(0,10,0,1,2,0,0,0), -60 ),
													/* 300 */ new TimeZoneInternational( TimeZoneArea.TongaStandardTime, -780, "(GMT+13:00) Nuku'alofa", "Tonga Standard Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), 0, "Tonga Daylight Time", new SYSTEMTIME(0,0,0,0,0,0,0,0), -60 ),
			};

			_instance._timeZones = new TimeZoneInternationalCollection( timezones );
		}

		private static readonly TimeZoneInternationalManager _instance = new TimeZoneInternationalManager();
		private TimeZoneInternationalCollection _timeZones;
	}
}
